package com.ruoyi.service.middlesign;

import com.ruoyi.util.BaseResult;

import java.util.List;
import java.util.Map;

/**
 * @author zeo
 * @explain 中征平台专用公用接口
 * @date 2021/3/15 16:15
 */
public interface MiddlesignService {

    /**
     * 查询核心企业集合
     *
     * @return
     */
    List<Map<String, Object>> findHxqyList();

    /**
     * 查询出B2802所需的明细数据
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> findHistoryData(Map map);
    /**
     * 推送历史数据至修改表
     * @param map
     * @return
     */
    int insertHistoryData(Map map);
    /**
     * 推送B2802明细数据
     *
     * @param jsonString
     * @param CREDITCODE 供应商社会信用代码
     * @param CREDITNO   授权码
     * @param CREDITNAME 供应商名称
     * @param hxqyName   核心企业名称
     * @param hxqyCode   核心企业社会信用代码
     * @param table      查询表格
     * @return
     */
    BaseResult pushHistoryData(String jsonString, String CREDITCODE, String CREDITNO, String CREDITNAME, String hxqyName, String hxqyCode, String table);
    /**
     * 根据ID查询单条历史数据
     * @param id
     * @return
     */
    Map findHistoryDataById(String id);
    /**
     * 修改历史数据
     * @param map
     * @return
     */
    int updateHistoryDate(Map map);



    /**
     * 从主表导入B2804到专用表
     *
     * @param CREDIT_NAME
     * @param hxqyName
     * @return
     */
    int insertAccountsByName(String CREDIT_NAME, String hxqyName);
    /**
     * 查询出B2804所需的数据
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> findAccountsByName(Map map);
    /**
     * 推送B2804
     *
     * @param jsonString
     * @param CREDITCODE
     * @param CREDITNAME
     * @param hxqyCode
     * @param type
     * @return
     */
    BaseResult accountsPushData(String jsonString, String CREDITCODE, String CREDITNAME, String hxqyCode, String type);


    /**
     * 从主表导入B2805到专用表
     *
     * @param CREDIT_NAME
     * @param hxqyName
     * @return
     */
    int insertPaymentByName(String CREDIT_NAME, String hxqyName);
    /**
     * 查询出B2805所需的数据
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> findPaymentByName(Map map);
    /**
     * 推送B2805
     *
     * @param jsonString
     * @param CREDITCODE
     * @param CREDITNAME
     * @param hxqyCode
     * @param type
     * @return
     */
    BaseResult paymentPushData(String jsonString, String CREDITCODE, String CREDITNAME, String hxqyCode, String type);


    /**
     * 从主表导入B2806到专用表
     *
     * @param CREDIT_NAME
     * @return
     */
    int insertStockSupplierAccount(String CREDIT_NAME);
    /**
     * 查询出B2806所需的数据
     *
     * @param CREDIT_NAME
     * @return
     */
    List<Map<String, Object>> findStockSupplierAccount(String CREDIT_NAME);
    /**
     * 推送B2806数据
     *
     * @param data
     * @return
     */
    BaseResult supplierPush(String data, String CREDITCODE, String hxqyCode, String type);


    /**
     * 从主表导入B2807到专用表
     *
     * @param CREDIT_NAME
     * @param hxqyName
     * @return
     */
    int insertReconciliationData(String CREDIT_NAME, String hxqyName);
    /**
     * 查询B2807数据
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> findReconciliationData(Map map);
    /**
     * 推送B2807
     *
     * @param jsonString
     * @param CREDITCODE
     * @param CREDITNAME
     * @param hxqyCode
     * @param type
     * @return
     */
    BaseResult reconciliationDataPush(String jsonString, String CREDITCODE, String CREDITNAME, String hxqyCode, String type);


    /**
     * 根据ID查询接受账款存量数据
     * @param id
     * @param table
     * @return
     */
    Map getStockDataAccountsById(String id, String table);
    /**
     * 保存接受账款存量数据
     * @param map
     * @return
     */
    int accountsSave(Map map);

    /**
     * 根据ID查询接受付款信息存量数据
     * @return
     */
    Map getStockDataPaymentById(String id, String table);


    /**
     * 保存接受付款信息存量数据
     * @param map
     * @return
     */
    int paymentSave(Map map);

    /**
     * 根据ID查询供应商回款账户数据
     * @return
     */
    Map getSupplierAccountById(String id);

    /**
     * 供应商回款账户数据修改
     * @param map
     * @return
     */
    int stockSupplierAccountSave(Map map);

    /**
     * 修改调账数据
     * @return
     */
    Map getReconciliationById(String id, String table);

    /**
     * 供应商回款账户数据修改
     * @param map
     * @return
     */
    int reconciliationSave(Map map);
}
